<?php
// +----------------------------------------------------------------------
// |ZBPHP[基于ThinkPHP5.1开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2019 http://www.benbenwangluo.com
// +----------------------------------------------------------------------
// | Author 似水星辰 [ 2630481389@qq.com ]
// +----------------------------------------------------------------------
// | 中犇软件 技术六部 出品
// +----------------------------------------------------------------------

namespace app\customer\admin;

use app\admin\admin\Base;
use app\customer\model\Reply as ReplyModel;
use service\Format;

/**
 * 快捷问题消息设置
 * @package app\Service\admin
 */
class Reply extends Base
{
    /**
     * 快捷问题消息列表
     * @return mixed
     * @author 似水星辰 [2630481389@qq.com]
     */
    public function index()
    {
        cookie('__forward__', $_SERVER['REQUEST_URI']);
        // 数据列表
        $replyList = ReplyModel::where("store_id",0)->paginate();
        $fields = [
            ['id', 'ID'],          
            ['type', '消息类型', 'status', '', ReplyModel::$replyType],
            ['problem', '问题'],
            ['answer', '回复'],  
            //['url', '跳转链接'],
            ['status', '状态',"status"],
            ['right_button', '操作', 'btn', '', '', 'text-center']
        ];
        return Format::ins()//实例化
            ->setPageTips("在用户打开客服界面时会展示5个常见问题。客服不在线时自动关键字匹配5个搜索问题")
            ->addColumns($fields)//设置字段
            ->setTopButtons($this->top_button)
            ->setRightButtons($this->right_button)
            ->setData($replyList)//设置数据
            ->fetch();//显示
    }

    /**
     * 新增
     * @return mixed
     * @author 似水星辰 [2630481389@qq.com]
     */
    public function add()
    {
        // 保存数据
        if($this->request->isPost()){
            // 表单数据
            $data = $this->request->post();
            $res = $this->validate($data, "reply");
            if(true !== $res){
                $this->error($res);
            }       
            if ($page = ReplyModel::create($data)) {
                $this->success('新增成功', cookie('__forward__'));
            } else {
                $this->error('新增失败');
            }
        }

        $fields = [
            ['type'=>'select', 'name'=>'type', 'title'=>'回复配置类型', 'extra'=>ReplyModel::$replyType, 'value'=>'1'],
            ['type'=>'text', 'name'=>'problem', 'title'=>'问题','attr' => 'data-rule="required;" data-msg-required="不能为空"'],
            ['type'=>'text', 'name'=>'answer', 'title'=>'回复'],
            //['type'=>'text', 'name'=>'url', 'title'=>'跳转链接'],
            //['type'=>'number', 'name'=>'store_id', 'title'=>'店铺ID', 'value'=>'0',"tips"=>"填写0全部店铺都适用"],
        ];
        $this->assign('page_title', '回复配置新增');
        $this->assign('form_items', $fields);
        return $this->fetch('admin@public/add');
    }
        

    /**
     * 编辑
     * @param null $id 客服列表id
     * @return mixed
     * @author 似水星辰 [2630481389@qq.com]
     */
    public function edit($id = null)
    {
        if($id === null) $this->error('缺少参数');

        // 保存数据
        if($this->request->isPost()){
            // 表单数据
            $data = $this->request->post();
            $res = $this->validate($data, "reply");
            if(true !== $res){
                $this->error($res);
            }   
            if(ReplyModel::update($data)){
                $this->success('编辑成功', cookie('__forward__'));
            }else{
                $this->error('编辑失败');
            }
        }
    
        // 获取编辑的信息
        $info = ReplyModel::get($id);
        $fields = [
            ['type' => 'hidden', 'name' => 'id'],
            ['type'=>'select', 'name'=>'type', 'title'=>'回复配置类型', 'extra'=>ReplyModel::$replyType],
            ['type'=>'text', 'name'=>'problem', 'title'=>'问题','attr' => 'data-rule="required;" data-msg-required="不能为空"'],
            ['type'=>'text', 'name'=>'answer', 'title'=>'回复'],
           //['type'=>'text', 'name'=>'url', 'title'=>'跳转链接'],
            //['type'=>'number', 'name'=>'store_id', 'title'=>'店铺ID', 'value'=>'0',"tips"=>"填写0全部店铺都适用"],
        ];
        $this->assign('page_title', '编辑回复配置');
        $this->assign('form_items', $this->setData($fields, $info));
        return $this->fetch('admin@public/edit');
    }
}